1. Field of the Invention
The invention relates generally to network storage systems and more specifically to virtualized storage systems in a computer network.
2. Discussion of Related Art
A typical large-scale storage system (e.g., an enterprise storage system) includes many diverse storage resources, including storage subsystems and storage networks. Many contemporary storage systems also control data storage and create backup copies of stored data where necessary. Such storage management generally results in the creation of one or more logical volumes where the data in each volume is manipulated as a single unit. In some instances, the volumes are managed as a single unit through a technique called “storage virtualization”.
Storage virtualization allows the storage capacity that is physically spread throughout an enterprise (i.e., throughout a plurality of storage devices) to be treated as a single logical pool of storage. Virtual access to this storage pool is made available by software that masks the details of the individual storage devices, their locations, and the manner of accessing them. Although an end user sees a single interface where all of the available storage appears as a single pool of local disk storage, the data may actually reside on different storage devices in different places. The data may even be moved to other storage devices without a user's knowledge.
Storage virtualization is commonly provided by a storage virtualization engine (SVE) that masks the details of the individual storage devices and their actual locations by mapping logical storage addresses to physical storage addresses. The SVE generally follows predefined rules concerning availability and performance levels and then decides where to store a given piece of data. Depending on the implementation, an SVE can be implemented by specialized hardware located between the host servers and the storage. Host server applications or file systems can then mount the logical volume without regard to the physical storage location or vendor type.
FIG. 1 illustrates a block diagram of a prior art storage virtualization system 100 in a network computing environment. With network based storage virtualization, an SVE 103 is linked to virtual volume exposures, or target ports 102-1 . . . N, that provide communications between network computing elements 101-1 . . . N (e.g., computers, servers, and/or other types of read/write request initiators) coupled to the network 110 and a physical storage volume 107. For example, the SVE 103 may attach to a network fabric to expose virtual storage volumes 106-1 . . . N appearing behind virtual storage end-points, also known as physical storage containers (PSCs) 105-1 . . . N. The virtual storage volumes 106-1 . . . N are essentially physical volume exposures that appear behind each PSC 105 are unique volume exposures capable of representing the same virtual volume metadata. Each of the exposures that share common metadata represents a different path to the same physical storage volume 107. In this regard, the SVE 103 does not actually provide storage; rather, it forwards read/write requests according to the virtual volume metadata or it maps the read/write requests to the appropriate physical storage location in the physical storage volume 107. Read/write requests are forwarded by the network computing elements 101-1 . . . N to access the virtual storage space.
Host multipathing software utilizes available paths to the virtual volumes 106-1 . . . N exposed by the SVE 103. The SVE 103 selects a single path to the physical volume 107 through a virtual extent 104 (e.g., as illustrated via PSC 105-2) and utilizes this path for all metadata references to the physical storage volume 107. In this regard, the metadata being represented by a map is indexed by the logical block address (LBA) of a virtual read/write request to yield the same backside path for all references to the physical volume 107. This form of static path selection, however, decreases performance since the data traverses a single path even though a plurality of paths are available (e.g., via PSCs 105-1, 105-3, 105-4, and 105-N).
Alternatively, the SVE 103 may aggregate the set of available paths and select a different path for each incoming read/write request using some sort of policy (e.g., via round-robin, least recently used, or bandwidth-based policies). Each read/write request that is routed to the physical storage volume 107 is thus dynamically spread across the available paths. Thus, if four paths to the virtual storage volumes 106 exist (e.g., four PCSs 105), a network computing element 101 can realize four times the bandwidth of a single network connection. This dynamic path selection, however, uses complex intelligence to perform read/write request forwarding, thereby impacting overall performance of the SVE 103. For example, the read/write request forwarding of the SVE 103 generally involves RISC-like processing. This performance is typically measured by the number of forwarding decisions made per second. Adding complex routing logic that is executed for each forwarded read/write request reduces the rate at which forwarding decisions can be made, thereby affecting access to the physical storage volume 107. Moreover, dynamic path selection generally employs state machine processing (e.g., bandwidth-based, last path used, etc.) to ensure a fair distribution of the read/write requests across the available paths, resulting in higher overhead/memory consumption that further impacts performance. Accordingly, there exists a need to provide load balancing in a virtualized storage system that does not substantially impact read/write request performance.